package com.ebt.m.proposal_v2.mvp.contract;

import com.ebt.m.proposal_v2.bean.InsuranceEntity;
import com.ebt.m.proposal_v2.dao.request.ParamGetRisks;
import com.ebt.m.proposal_v2.dao.response.ResponseMain;
import com.ebt.m.proposal_v2.mvp.base.IPresenter;
import com.ebt.m.proposal_v2.mvp.base.IView;

import java.util.List;

/**
 * @author archer.qi
 * Created on 2017/5/24.
 */
public interface CommonProductContract {

    interface Presenter extends IPresenter {


        /**
         * 获取主险产品
         *
         * @param params
         */
        void getCommonProducts(ParamGetRisks params);

        /**
         * 获取主险详情
         */
        void getMainProductDetails(int productId, String age, int sex, int profession);


        /**
         * 点击列表
         *
         * @param position
         */
        void onItemClick(int position, ParamGetRisks param);

        /**
         * 提交主险选择
         *
         * @param list
         */
        void submitMainChoose(List<InsuranceEntity> list);
    }

    interface View extends IView {

        /**
         * 初始化空页面
         */
        void initEmptyView();

        /**
         * 加载
         */
        void showProgress();

        /**
         * 结束加载
         */
        void cancelProgress();

        /**
         * 获取公司类型
         *
         * @return
         */
        int getCompanyType();

        /**
         * 初始化RecyclerView
         */
        void initRecyclerView();

        /**
         * 创建Presenter
         *
         * @return
         */
        void createPresenter();

        /**
         * 绑定数据
         *
         * @param listData
         */
        void bindRecyclerData(List<ResponseMain> listData);

        /**
         * 获取参数
         *
         * @return
         */
        ParamGetRisks getArgument();

        /**
         * 结束当前yem
         */
        void finishActivity();

        void showEmpty(boolean empty, boolean no_net, boolean net_slow);

    }
}
